package sv.gob.mh.dgii.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "QD_ASIGNACION_CASO", schema = "DEFCONTRIB")
@SequenceGenerator(name = "SEQ_QD_ASIGNACION_CASO", sequenceName = "SEQ_QD_ASIGNACION_CASO")
public class QdAsignacionCaso implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ID_ASIGNACION")
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_QD_ASIGNACION_CASO")
    private Long idAsignacion;
    @Column(name = "ID_CASO")
    private Long idCaso;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ID_CASO", nullable = false, insertable = false, updatable = false)
    private QdCaso caso;
    @Column(name = "ID_TECNICO_CONTABLE")
    private Long idTecnicoContable;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ID_TECNICO_CONTABLE", nullable = false, insertable = false, updatable = false)
    private TbTecnico tecnicoContable;
    @Column(name = "ID_TECNICO_JURIDICO")
    private Long idTecnicoJuridico;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ID_TECNICO_JURIDICO", nullable = false, insertable = false, updatable = false)
    private TbTecnico tecnicoJuridico;
    @Column(name = "FECHA_ASIGNACION")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaAsignacion;
    @Column(name = "FECHA_CIERRE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaCierre;
    @Column(name = "ESTADO")
    private String estado;
    @Column(name = "OBSERVACION")
    private String observacion;

    public Long getIdAsignacion() {
        return idAsignacion;
    }

    public void setIdAsignacion(Long idAsignacion) {
        this.idAsignacion = idAsignacion;
    }

    public Long getIdCaso() {
        return idCaso;
    }

    public void setIdCaso(Long idCaso) {
        this.idCaso = idCaso;
    }

    public QdCaso getCaso() {
        return caso;
    }

    public void setCaso(QdCaso caso) {
        this.caso = caso;
    }

    public Long getIdTecnicoContable() {
        return idTecnicoContable;
    }

    public void setIdTecnicoContable(Long idTecnicoContable) {
        this.idTecnicoContable = idTecnicoContable;
    }

    public TbTecnico getTecnicoContable() {
        return tecnicoContable;
    }

    public void setTecnicoContable(TbTecnico tecnicoContable) {
        this.tecnicoContable = tecnicoContable;
    }

    public Long getIdTecnicoJuridico() {
        return idTecnicoJuridico;
    }

    public void setIdTecnicoJuridico(Long idTecnicoJuridico) {
        this.idTecnicoJuridico = idTecnicoJuridico;
    }

    public TbTecnico getTecnicoJuridico() {
        return tecnicoJuridico;
    }

    public void setTecnicoJuridico(TbTecnico tecnicoJuridico) {
        this.tecnicoJuridico = tecnicoJuridico;
    }

    public Date getFechaAsignacion() {
        return fechaAsignacion;
    }

    public void setFechaAsignacion(Date fechaAsignacion) {
        this.fechaAsignacion = fechaAsignacion;
    }

    public Date getFechaCierre() {
        return fechaCierre;
    }

    public void setFechaCierre(Date fechaCierre) {
        this.fechaCierre = fechaCierre;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }
}